package com.funny.stock.base.service;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

import java.util.List;

public interface CrudServiceV2<VO, ID> {

    <S extends VO> S save(S entity);

    <S extends VO> List<S> saveAll(List<S> entities);

    VO findById(ID id);

    boolean existsById(ID id);

    List<VO> findAll();

    List<VO> findAllById(List<ID> ids);

    List<VO> findAll(Sort sort);

    Page<VO> findAll(Pageable pageable);

    long count();

    void deleteById(ID id);

    void delete(VO entity);

    void deleteAll(List<? extends VO> entities);

//    void deleteAll();


}
